Skip to content

Rollup of 11 pull requests - #165844

Merged
rust-bors[bot] merged 35 commits into
rust-lang:mainfrom
Zalathar:rollup-BB6Dp3b
Nov 12, 2026
Merged

rust-bors[bot] merged 35 commits into
rust-lang:mainfrom
Zalathar:rollup-BB6Dp3b

Conversation

@Zalathar

Copy link
Copy Markdown
Member

Successful merges:

r? @ghost

Create a similar rollup

fmease and others added 30 commits October 30, 2026 11:27
(cherry picked from commit b791169)
LangItem might eventually be the type that forces us to support
`#[derive(StableHash)]` for enums with more than 256 variants.
This commit also removes `#[derive(Hash)]` from the affected types, since it is
no longer used.

If these types need a plain Hash impl is needed in the future, it could
potentially share the `stable_hash_inner` implementation.
By moving away from the old `impl_stable_traits_for_trivial_type!` macro, this
commit has the side-effect of removing unused StableOrd impls for some types.
Those impls could potentially be re-added if they are ever needed.
Add a test for a case that results in a recursive loop that runs until
it runs out of memory or gets killed. This used to take a long time to
compile because of nested recursion caused by dereferencing the type of
the struct.

Signed-off-by: Hardik Kumar <hardikxk@gmail.com>
This pulls some less-trivial changes out of the main migration to `Value<'ll>`.
derived impls kept the lifetime spans of the derive input so the external macro check missed them and `#[expect(redundant_lifetimes)]` on a derived struct went unfulfilled. the lint now skips items whose own span is in an external macro.
Just because the parser of a specific syntax fragment kind returns an
`Err(_)` doesn't automatically mean that the problematic token sequence
isn't "of" that fragment's kind. The token sequence might "almost" be of
that kind (i.e., share a non-empty prefix) but simply contain a syntax
error in it.

On a side note, it's rather odd that the now removed
`annotate_err_with_kind` only added the note "this macro call doesn't
expand to a $fragkind" if the target fragment kind was *type* or *pat*,
there are 20 kinds at the of writing.
…..)`

This also means that it's now available under `core::pat` instead of
`core` directly. This makes it consistent with the `std` re-export
which is only available under `std::pat` and not under `std` directly.

Moreover, drop library feature `pattern_type_macro` and demote language
feature `pattern_types` to a library feature. This is nice because it
means `std::pat::pattern_type` is no longer unnecessarily gated behind
two (!) feature gates.
This also means that it's now available under `core::view` instead of
`core` directly. This makes it consistent with the `std` re-export
which is only available under `std::view` and not under `std` directly.

Moreover, drop library feature `view_type_macro` and demote language
feature `view_types` to a library feature. This is nice because it
means `std::view::view_type` is no longer unnecessarily gated behind
two (!) feature gates.
Co-authored-by: xkevio <xkeviota@gmail.com>

style: use ecx stmt item method
cg_llvm: Use an invariant lifetime brand for LLVM values

This PR changes the type of LLVM value references from `&'ll Value` to `Value<'ll>` with an invariant lifetime brand, to help uphold soundness of the FFI bindings.

There should be no change to compiler output.

---

Value is one of the more widely-used types, much more so than Type, so unfortunately this step ends up needing to touch quite a lot of code. Thankfully almost all of the changes are trivial.
…rk-Simulacrum

Bump stage0 to 1.101.0-beta.1

https://forge.rust-lang.org/release/process.html#default-branch-bootstrap-update-and-crater-tuesday

- run replace-version-placeholder (cherry-picked from beta)
- bump stage0 to 1.101.0-beta.1
- update STAGE0_MISSING_TARGETS
- reformat with `cfg_select!` awareness
- update `cfg(bootstrap)`
Implement `core::ops::FnAddr`

This implements `FnAddr` as proposed in rust-lang/libs-team#837 (comment).

This is my first contribution to the rust compiler, so I'm not 100% familiar with the process.

All code was hand written by me.

cc rust-lang#148768
…syntax, r=mati865

Migrate built-in macros `pattern_type` & `view_type` to macros 2.0 that expand to internal syntax

Part of MCP-approved rust-lang#110680.

Best reviewed commit by commit. Please see individual commit messages for further details.

Pinging owner of pattern types @oli-obk & owner of view types @scrabsha for visibility.

<sub>(No LLM was or will be used by me during the entire creation process of this PR)</sub>
…ternal-macro, r=petrochenkov

do not lint `redundant_lifetimes` on items from external macros

derived impls copy the lifetime spans from the derive input so the external macro check on the lint span never fires and the lint is reported on the generated impl. that also left `#[expect(redundant_lifetimes)]` on a derived struct unfulfillable. now the lint skips items whose own span is in an external macro.

fixes rust-lang#150553
as suggested in rust-lang#150553 (comment)

r? @petrochenkov
feat: support nested functions with `#[offload_kernel]`

Related to rust-lang#131513.

Allows annotating nested functions with `#[offload_kernel]`, similar to autodiff.

Also fixes the error message when `#[offload_kernel]` is used on anything other than functions.

r? @ZuseZ4

(@Sa4dUs, ping)
@rust-bors rust-bors Bot removed the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Nov 12, 2026
@rust-bors

This comment has been minimized.

@rust-bors rust-bors Bot added merged-by-bors This PR was explicitly merged by bors. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Nov 12, 2026
@rust-bors

rust-bors Bot commented Nov 12, 2026

Copy link
Copy Markdown
Contributor

☀️ Test successful - CI
Approved by: Zalathar
Duration: 3h 22m 14s
Pushing 6b05f82 to main...

@github-actions

Copy link
Copy Markdown
Contributor
What is this? This is an experimental post-merge analysis report that shows differences in test outcomes between the merged PR and its parent PR.

Comparing ee8268e (parent) -> 6b05f82 (this PR)

Test differences

Show 291 test diffs

Stage 0

  • binary_search_util::tests::binary_search_slice_test: pass -> [missing] (J4)

Stage 1

  • [ui] tests/ui/checked-type-aliases/lint-explicit-outlives-requirements.rs: [missing] -> pass (J0)
  • [ui] tests/ui/higher-ranked/trait-bounds/normalize-under-binder/try-from-error-debug-bound-81162.rs: [missing] -> pass (J0)
  • [ui] tests/ui/offload/offload_kernel_illegal.rs: [missing] -> pass (J0)
  • [ui] tests/ui/recursion/infinite-dereference-recursion-issue-67064.rs: [missing] -> pass (J0)
  • [ui] tests/ui/type/pattern_types/feature-gate-pattern_types.rs: pass -> [missing] (J0)
  • [ui] tests/ui/type/pattern_types/feature-gate-pattern_types.rs#disabled: [missing] -> pass (J0)
  • [ui] tests/ui/type/pattern_types/feature-gate-pattern_types.rs#enabled: [missing] -> pass (J0)
  • [ui] tests/ui/type/pattern_types/feature-gate-pattern_types2.rs: pass -> [missing] (J0)
  • [ui (polonius)] tests/ui/checked-type-aliases/lint-explicit-outlives-requirements.rs: [missing] -> pass (J1)
  • [ui (polonius)] tests/ui/higher-ranked/trait-bounds/normalize-under-binder/try-from-error-debug-bound-81162.rs: [missing] -> pass (J1)
  • [ui (polonius)] tests/ui/offload/offload_kernel_illegal.rs: [missing] -> pass (J1)
  • [ui (polonius)] tests/ui/recursion/infinite-dereference-recursion-issue-67064.rs: [missing] -> pass (J1)
  • [ui (polonius)] tests/ui/type/pattern_types/feature-gate-pattern_types.rs: pass -> [missing] (J1)
  • [ui (polonius)] tests/ui/type/pattern_types/feature-gate-pattern_types.rs#disabled: [missing] -> pass (J1)
  • [ui (polonius)] tests/ui/type/pattern_types/feature-gate-pattern_types.rs#enabled: [missing] -> pass (J1)
  • [ui (polonius)] tests/ui/type/pattern_types/feature-gate-pattern_types2.rs: pass -> [missing] (J1)
  • [pretty] tests/pretty/offload/offload_kernel_nested.rs#device: [missing] -> pass (J4)
  • [pretty] tests/pretty/offload/offload_kernel_nested.rs#host: [missing] -> pass (J4)
  • [ui] tests/ui-fulldeps/internal-lints/lint_pass_impl_without_macro.rs: ignore (ignored when the bootstrapping stage is stage1) -> pass (J4)
  • [ui] tests/ui-fulldeps/internal-lints/missing-generic-type-visitable-derive.rs: ignore (ignored when the bootstrapping stage is stage1) -> pass (J4)
  • binary_search_util::tests::binary_search_slice_test: pass -> [missing] (J6)

Stage 2

  • [ui] tests/ui/checked-type-aliases/lint-explicit-outlives-requirements.rs: [missing] -> pass (J2)
  • [ui] tests/ui/higher-ranked/trait-bounds/normalize-under-binder/try-from-error-debug-bound-81162.rs: [missing] -> pass (J2)
  • [ui] tests/ui/offload/offload_kernel_illegal.rs: [missing] -> pass (J2)
  • [ui] tests/ui/recursion/infinite-dereference-recursion-issue-67064.rs: [missing] -> pass (J2)
  • [ui] tests/ui/type/pattern_types/feature-gate-pattern_types.rs: pass -> [missing] (J2)
  • [ui] tests/ui/type/pattern_types/feature-gate-pattern_types.rs#disabled: [missing] -> pass (J2)
  • [ui] tests/ui/type/pattern_types/feature-gate-pattern_types.rs#enabled: [missing] -> pass (J2)
  • [ui] tests/ui/type/pattern_types/feature-gate-pattern_types2.rs: pass -> [missing] (J2)
  • [pretty] tests/pretty/offload/offload_kernel_nested.rs#device: [missing] -> ignore (only executed when the release channel is nightly) (J3)
  • [pretty] tests/pretty/offload/offload_kernel_nested.rs#host: [missing] -> ignore (only executed when the release channel is nightly) (J3)
  • [pretty] tests/pretty/offload/offload_kernel_nested.rs#device: [missing] -> pass (J5)
  • [pretty] tests/pretty/offload/offload_kernel_nested.rs#host: [missing] -> pass (J5)

Additionally, 257 doctest diffs were found. These are ignored, as they are noisy.

Job group index

Test dashboard

Run

cargo run --manifest-path src/ci/citool/Cargo.toml -- \
    test-dashboard 6b05f82b4f2d1309cdbddece388c9e4d26f481fc --output-dir test-dashboard

And then open test-dashboard/index.html in your browser to see an overview of all executed tests.

Job duration changes

  1. test-x86_64-mingw-1: -> 3h 5m (+inf%)
  2. test-x86_64-gnu-aux: 1h 43m -> 3h 6m (+80.9%)
  3. dist-x86_64-msvc-alt: 1h 40m -> 2h 53m (+73.7%)
  4. test-aarch64-apple-1: 1h 32m -> 2h 32m (+65.4%)
  5. test-x86_64-gnu-stdlib-semver-check: 9m 15s -> 14m 58s (+61.8%)
  6. dist-loongarch64-linux: 1h 21m -> 2h 9m (+59.3%)
  7. test-x86_64-gnu-gcc-core-tests: 11m 11s -> 17m 20s (+55.0%)
  8. dist-powerpc64le-linux-gnu: 1h 9m -> 1h 44m (+49.7%)
  9. test-x86_64-rust-for-linux: 41m 3s -> 1h (+48.4%)
  10. dist-riscv64-linux-musl: 1h 3m -> 1h 32m (+45.4%)
How to interpret the job duration changes?

Job durations can vary a lot, based on the actual runner instance
that executed the job, system noise, invalidated caches, etc. The table above is provided
mostly for t-infra members, for simpler debugging of potential CI slow-downs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-attributes Area: Attributes (`#[…]`, `#![…]`) A-binaryheap Area: `std::collections::BinaryHeap` A-btree Area: `std::collections::{BTreeMap, BTreeSet}` A-collections Area: `std::collections` (prefer A-binaryheap, A-btree, A-hashtable, A-linkedlist, A-vecdeque) A-filesystem Area: `std::fs` A-fmt Area: `core::fmt` A-linkedlist Area: `std::collections::LinkedList` A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. A-networking Area: `std::net` A-option-result Area: Option and Result combinators A-raw-pointers Area: raw pointers, MaybeUninit, NonNull A-rc Area: `Rc` and `Arc` A-run-make Area: port run-make Makefiles to rmake.rs A-slice-vec Area: `[T]` and `Vec<T>` A-str Area: `str` and `String` A-test-infra-minicore Area: `minicore` test auxiliary and `//@ add-minicore` A-vecdeque Area: `std::collections::VecDeque` F-autodiff `#![feature(autodiff)]` merged-by-bors This PR was explicitly merged by bors. O-windows Operating system: Windows PG-exploit-mitigations Project group: Exploit mitigations rollup A PR which is a rollup T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-clippy Relevant to the Clippy team. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. T-release Relevant to the release subteam, which will review and decide on the PR/issue. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. T-rustdoc-frontend Relevant to the rustdoc-frontend team, which will review and decide on the web UI/UX output. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

10 participants